home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CS / CSCD027A.D64 / form maker .exe (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.0 KB  |  106 lines

  1. 1 REM  Q-LINK   9/87   DISK # 22
  2. 100 REM*** KEY BUFFER IS C64 ONLY!!
  3. 110 :
  4. 120 PRINT"[147][158]      FORM MAKER - LOUIS F. SANDER      [146] "
  5. 130 POKE53280,6:POKE53281,6
  6. 140 PRINT"[153]   THIS MAKES A FORM ON YOUR PRINTER."
  7. 150 INPUT"  YOUR PRINTER WIDTH IN SPACES  80[157][157][157][157]";PW:PW=PW-1
  8. 160 INPUT"   YOUR PAPER LENGTH IN INCHES  11[157][157][157][157]";PL:PL=INT(9*PL)
  9. 170 PRINT"            COLUMN 1    COLUMN 2"
  10. 180 PRINT"[153]          [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
  11. 190 PRINT"    ROW 1 [153][165]          [165]             [165]"
  12. 200 PRINT"          [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
  13. 210 PRINT"    ROW 2 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
  14. 220 PRINT"          [165]          [165]             [165]"
  15. 230 PRINT"    ROW 3 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
  16. 240 PRINT"[158]THE FORM CAN HAVE ANY NUMBER OF COLUMNS"
  17. 250 PRINT"AND ROWS. IT CAN BE UP TO";PW;"[158]PRINTER"
  18. 260 PRINT"SPACES WIDE AND";PL;"[158]PRINTER LINES LONG,"
  19. 270 PRINT"INCLUDING LABELS FOR COLUMNS AND ROWS."
  20. 280 PRINT"YOU CHOOSE ANINDIVIDUAL WIDTH FOR EACH"
  21. 290 PRINT"COLUMN, AND ONE HEIGHT FOR ALL THE ROWS."
  22. 300 INPUT"  HOW MANY COLUMNS ON THE FORM";NC%:DIMCW(NC%):PRINT:IFNC%<1THEN1020
  23. 310 W=0:FORJ=1TONC%
  24. 320 PRINT"   HOW MANY SPACES IN COLUMN";J;"[157]";:CW(J)=0:INPUTCW(J)
  25. 330 IFCW(J)<1THENPRINTTAB(35)"[145][158]_ ???":GOTO320
  26. 340 W=W+CW(J):NEXT
  27. 350 PRINT"[158]THESE COLUMNS TAKE UP";W;"[158]OF THE";PW
  28. 360 PRINT"[158]AVAILABLE SPACES ON YOUR PRINTER."
  29. 370 IFW>PWTHENPRINT" ABORTED - MAXIMUM WIDTH IS";PW;"[157] SPACES. ":GOTO1020
  30. 380 INPUT"         IS THIS O.K. (Y OR N)  Y[157][157][157]";A$:IFA$<>"Y"THENPRINT:GOTO310
  31. 390 INPUT"    LABEL THE COLUMNS (Y OR N)  Y[157][157][157]";A$:IFLEFT$(A$,1)<>"Y"THEN470
  32. 400 GOSUB1090:FORJ=1TONC%
  33. 410 PRINT"LABEL FOR COLUMN";J;"-";CW(J);"SPACES"
  34. 420 PRINT"  ";CHR$(34);CHR$(20);CHR$(34);
  35. 430 FORK=1TOCW(J):PRINT" ";:NEXT:A=POS(0):PRINTCHR$(34):IFA>38THENPRINT"[145]";
  36. 440 PRINT"[145]";:POKE631,29:POKE198,1:INPUTA$
  37. 450 IFLEN(A$)<>CW(J)THENPRINT"[158] ERROR!! - TRY AGAIN ":GOTO410
  38. 460 L$=L$+A$:NEXT
  39. 470 PRINT"[158]THAT FINISHES THE VERTICAL COLUMNS."
  40. 480 PRINT"NOW WE WILL DO THE HORIZONTAL ROWS,"
  41. 490 PRINT"WHICH CAN FILL UP TO";PL-1;"[158]PRINTER LINES."
  42. 500 INPUT"     HOW MANY ROWS ON THE FORM";NR%:IFNR%<1THEN500
  43. 510 NW=LEN(STR$(NR%))-1:NW$=LEFT$("     ",NW)
  44. 520 INPUT"HOW MANY PRINTER LINES PER ROW";LR%:IFLR%<1THEN520
  45. 530 TL=NR%*LR%+1:DIML$(TL+2)
  46. 540 PRINT"[158]THESE ROWS TAKE UP";TL;"[158]PRINTER LINES,"
  47. 550 PRINT"INCLUDING A LINE FOR COLUMN LABELS."
  48. 560 PRINT"YOUR PAPER HAS";PL;"[158]LINES, LEAVING";PL-TL
  49. 570 PRINT"[158]LINES UNPRINTED."
  50. 580 IFTL>PLTHENPRINT" ABORTED - TOO LONG FOR THE PAPER.":GOTO1020
  51. 590 PRINT"[158]THE FORM IS";W;"[158]SPACES WIDE, LEAVING"
  52. 600 PRINT"[157]";PW-W;"[158]SPACES FOR ";
  53. 610 IFNW=<PW-WTHENPRINT"NUMBERING OR ";
  54. 620 PRINT"LABELING"
  55. 630 PRINT"ITS";NR%;"[158]HORIZONTAL ROWS."
  56. 640 IFNW>PW-WTHENPRINT"THERE IS NO ROOM TO NUMBER THEM.":GOTO690
  57. 650 INPUT"      NUMBER THE ROWS (Y OR N)";A$:IFLEFT$(A$,1)<>"Y"THEN690
  58. 660 FORJ=0TOTL:L$(J)=NW$:NEXT:J=1
  59. 670 FORK=1+INT((LR%-1)/2)TOTL-1STEPLR%:L$(K)=RIGHT$("    "+STR$(J),NW):J=J+1
  60. 680 NEXT:GOTO830
  61. 690 INPUT"       LABEL THE ROWS (Y OR N)";A$:IFLEFT$(A$,1)<>"Y"THEN830
  62. 700 GOSUB1090
  63. 710 INPUT"     # SPACES IN LONGEST LABEL";LW
  64. 720 IFLW>PW-WTHENPRINT"[158] ERROR!! -";PW-W;"[157] MAXIMUM ":GOTO710
  65. 730 FORJ=1TOLW:LW$=LW$+" ":NEXT
  66. 740 FORJ=0TOTL:L$(J)=LW$:NEXT:J=1
  67. 750 FORK=1+INT((LR%-1)/2)TOTL-1STEPLR%
  68. 760 PRINT"LABEL FOR ROW";J;"-";LW;"SPACES"
  69. 770 PRINT"  ";CHR$(34);LW$;:A=POS(0):PRINTCHR$(34):IFA>38THENPRINT"[145]";
  70. 780 PRINT"[145]";:POKE631,29:POKE198,1:INPUTA$
  71. 790 IFLEN(A$)<>LWTHENPRINT"[158] ERROR!! - TRY AGAIN ":GOTO760
  72. 800 L$(K)=A$:J=J+1:NEXT
  73. 810 :
  74. 820 REM PRINT THE FORM
  75. 830 PRINT"[158]THE FORM IS" LEFT$(STR$((LW+W)/10),5);CHR$(34);" WIDE BY";
  76. 840 PRINTLEFT$(STR$(TL/9),5);CHR$(34);" LONG,"
  77. 850 PRINT"OR";LW+W;"SPACES WIDE BY";TL;"LINES LONG."
  78. 860 PRINT"[153][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  79. 870 PRINT"    ALIGN THE PAPER IN THE PRINTER,    "
  80. 880 PRINT"    THEN PRESS THE 'P' KEY...          "
  81. 890 GETA$:IFA$<>"P"THEN890
  82. 900 T$=CHR$(15) :REM TEXT MODE **TARGET
  83. 910 G$=CHR$(8)  :REM GRAPHICS MODE (FOR LINE SPACING)
  84. 920 OPEN4,4:CMD4:GOSUB1060:PRINTL$
  85. 930 FORH=1TONR%:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(207);:FORK=1TOCW(J)-1
  86. 940 IFCW(J)>1THENPRINTCHR$(163);
  87. 950 NEXT:NEXT:PRINTCHR$(165);G$:IFLR%<2THEN990
  88. 960 FORI=1TOLR%-1:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(165);:FORK=1TOCW(J)-1
  89. 970 IFCW(J)>1THENPRINT" ";
  90. 980 NEXT:NEXT:PRINTCHR$(165);G$:NEXT
  91. 990 NEXT:GOSUB1060;:FORJ=1TONC%:FORK=1TOCW(J):PRINTCHR$(163);:NEXT:NEXT
  92. 1000 PRINT#4:CLOSE4: PRINT"[147][158]      FORM MAKER - LOUIS F. SANDER      [146] "
  93. 1010 PRINT"         YOUR FORM IS FINISHED!"
  94. 1020 POKE53280,14:POKE53281,6:PRINT"[154]";
  95. 1030 END
  96. 1040 :
  97. 1050 REM ROW LABELS SUBROUTINE
  98. 1060 PRINTT$;L$(LC);:LC=LC+1:RETURN
  99. 1070 :
  100. 1080 REM LABEL SUBROUTINE
  101. 1090 PRINT"[158]ENTER THE LABELS RIGHT NOW. YOU MUST"
  102. 1100 PRINT"KEEP THEM BETWEEN THE QUOTATION MARKS,"
  103. 1110 PRINT"BUT YOU CAN CENTER THEM OR POSITION"
  104. 1120 PRINT"THEM AS YOU LIKE."
  105. 1130 RETURN
  106.